/**
 * <copyright>
 * </copyright>
 *
 * $Id$
 */
package cz.cuni.mff.d3s.arcas.intermediate.impl;

import cz.cuni.mff.d3s.arcas.intermediate.Connector;
import cz.cuni.mff.d3s.arcas.intermediate.ConnectorEndpoint;
import cz.cuni.mff.d3s.arcas.intermediate.ConnectorFeature;
import cz.cuni.mff.d3s.arcas.intermediate.ConnectorFeatureValue;
import cz.cuni.mff.d3s.arcas.intermediate.ConnectorFeatureValueAttribute;
import cz.cuni.mff.d3s.arcas.intermediate.DeploymentDock;
import cz.cuni.mff.d3s.arcas.intermediate.DistributionArchitecture;
import cz.cuni.mff.d3s.arcas.intermediate.DistributionArchitectureFeatureDelegation;
import cz.cuni.mff.d3s.arcas.intermediate.DistributionArchitectureRemoteBinding;
import cz.cuni.mff.d3s.arcas.intermediate.DistributionArchitectureRole;
import cz.cuni.mff.d3s.arcas.intermediate.DistributionArchitectureUnit;
import cz.cuni.mff.d3s.arcas.intermediate.ElementArchitecture;
import cz.cuni.mff.d3s.arcas.intermediate.ElementArchitectureFeature;
import cz.cuni.mff.d3s.arcas.intermediate.ElementArchitectureFeatureAttribute;
import cz.cuni.mff.d3s.arcas.intermediate.ElementArchitecturePortBinding;
import cz.cuni.mff.d3s.arcas.intermediate.ElementArchitectureSignaturePropagation;
import cz.cuni.mff.d3s.arcas.intermediate.ElementArchitectureSubElement;
import cz.cuni.mff.d3s.arcas.intermediate.IntermediateDocument;
import cz.cuni.mff.d3s.arcas.intermediate.IntermediateFactory;
import cz.cuni.mff.d3s.arcas.intermediate.IntermediatePackage;
import cz.cuni.mff.d3s.arcas.intermediate.NameValuesPair;
import cz.cuni.mff.d3s.arcas.intermediate.Port;
import cz.cuni.mff.d3s.arcas.intermediate.Role;
import cz.cuni.mff.d3s.arcas.intermediate.Signature;
import cz.cuni.mff.d3s.arcas.intermediate.Subelement;
import cz.cuni.mff.d3s.arcas.intermediate.Unit;

import org.eclipse.emf.ecore.EAttribute;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EPackage;
import org.eclipse.emf.ecore.EReference;

import org.eclipse.emf.ecore.impl.EPackageImpl;

/**
 * <!-- begin-user-doc -->
 * An implementation of the model <b>Package</b>.
 * <!-- end-user-doc -->
 * @generated
 */
public class IntermediatePackageImpl extends EPackageImpl implements IntermediatePackage {
	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass intermediateDocumentEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass connectorEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass connectorEndpointEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass connectorFeatureEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass connectorFeatureValueEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass connectorFeatureValueAttributeEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass deploymentDockEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass distributionArchitectureEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass distributionArchitectureRoleEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass distributionArchitectureUnitEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass distributionArchitectureRemoteBindingEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass distributionArchitectureFeatureDelegationEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass elementArchitectureEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass elementArchitectureSubElementEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass elementArchitecturePortBindingEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass elementArchitectureSignaturePropagationEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass elementArchitectureFeatureEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass elementArchitectureFeatureAttributeEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass nameValuesPairEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass portEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass roleEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass signatureEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass subelementEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass unitEClass = null;

	/**
	 * Creates an instance of the model <b>Package</b>, registered with
	 * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
	 * package URI value.
	 * <p>Note: the correct way to create the package is via the static
	 * factory method {@link #init init()}, which also performs
	 * initialization of the package, or returns the registered package,
	 * if one already exists.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see org.eclipse.emf.ecore.EPackage.Registry
	 * @see cz.cuni.mff.d3s.arcas.intermediate.IntermediatePackage#eNS_URI
	 * @see #init()
	 * @generated
	 */
	private IntermediatePackageImpl() {
		super(eNS_URI, IntermediateFactory.eINSTANCE);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private static boolean isInited = false;

	/**
	 * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
	 * 
	 * <p>This method is used to initialize {@link IntermediatePackage#eINSTANCE} when that field is accessed.
	 * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #eNS_URI
	 * @see #createPackageContents()
	 * @see #initializePackageContents()
	 * @generated
	 */
	public static IntermediatePackage init() {
		if (isInited) return (IntermediatePackage)EPackage.Registry.INSTANCE.getEPackage(IntermediatePackage.eNS_URI);

		// Obtain or create and register package
		IntermediatePackageImpl theIntermediatePackage = (IntermediatePackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof IntermediatePackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new IntermediatePackageImpl());

		isInited = true;

		// Create package meta-data objects
		theIntermediatePackage.createPackageContents();

		// Initialize created meta-data
		theIntermediatePackage.initializePackageContents();

		// Mark meta-data to indicate it can't be changed
		theIntermediatePackage.freeze();

  
		// Update the registry and return the package
		EPackage.Registry.INSTANCE.put(IntermediatePackage.eNS_URI, theIntermediatePackage);
		return theIntermediatePackage;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getIntermediateDocument() {
		return intermediateDocumentEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getIntermediateDocument_Connectors() {
		return (EReference)intermediateDocumentEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getIntermediateDocument_Docks() {
		return (EReference)intermediateDocumentEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getIntermediateDocument_DistributionArchitectures() {
		return (EReference)intermediateDocumentEClass.getEStructuralFeatures().get(2);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getIntermediateDocument_ElementArchitectures() {
		return (EReference)intermediateDocumentEClass.getEStructuralFeatures().get(3);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getIntermediateDocument_Ports() {
		return (EReference)intermediateDocumentEClass.getEStructuralFeatures().get(4);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getIntermediateDocument_Roles() {
		return (EReference)intermediateDocumentEClass.getEStructuralFeatures().get(5);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getIntermediateDocument_Subelements() {
		return (EReference)intermediateDocumentEClass.getEStructuralFeatures().get(6);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getIntermediateDocument_Signatures() {
		return (EReference)intermediateDocumentEClass.getEStructuralFeatures().get(7);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getIntermediateDocument_Units() {
		return (EReference)intermediateDocumentEClass.getEStructuralFeatures().get(8);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getConnector() {
		return connectorEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getConnector_Name() {
		return (EAttribute)connectorEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getConnector_Endpoints() {
		return (EReference)connectorEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getConnector_AllowedDAs() {
		return (EAttribute)connectorEClass.getEStructuralFeatures().get(2);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getConnector_Features() {
		return (EReference)connectorEClass.getEStructuralFeatures().get(3);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getConnectorEndpoint() {
		return connectorEndpointEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getConnectorEndpoint_Name() {
		return (EAttribute)connectorEndpointEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getConnectorEndpoint_Role() {
		return (EAttribute)connectorEndpointEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getConnectorEndpoint_Signature() {
		return (EAttribute)connectorEndpointEClass.getEStructuralFeatures().get(2);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getConnectorEndpoint_Dock() {
		return (EAttribute)connectorEndpointEClass.getEStructuralFeatures().get(3);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getConnectorFeature() {
		return connectorFeatureEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getConnectorFeature_Name() {
		return (EAttribute)connectorFeatureEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getConnectorFeature_Component() {
		return (EAttribute)connectorFeatureEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getConnectorFeature_Interface() {
		return (EAttribute)connectorFeatureEClass.getEStructuralFeatures().get(2);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getConnectorFeature_Values() {
		return (EReference)connectorFeatureEClass.getEStructuralFeatures().get(3);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getConnectorFeatureValue() {
		return connectorFeatureValueEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getConnectorFeatureValue_Name() {
		return (EAttribute)connectorFeatureValueEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getConnectorFeatureValue_Attributes() {
		return (EReference)connectorFeatureValueEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getConnectorFeatureValueAttribute() {
		return connectorFeatureValueAttributeEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getConnectorFeatureValueAttribute_Name() {
		return (EAttribute)connectorFeatureValueAttributeEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getConnectorFeatureValueAttribute_Value() {
		return (EAttribute)connectorFeatureValueAttributeEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getDeploymentDock() {
		return deploymentDockEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getDeploymentDock_Name() {
		return (EAttribute)deploymentDockEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getDistributionArchitecture() {
		return distributionArchitectureEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getDistributionArchitecture_Name() {
		return (EAttribute)distributionArchitectureEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getDistributionArchitecture_Roles() {
		return (EReference)distributionArchitectureEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getDistributionArchitecture_Units() {
		return (EReference)distributionArchitectureEClass.getEStructuralFeatures().get(2);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getDistributionArchitecture_RemoteBindings() {
		return (EReference)distributionArchitectureEClass.getEStructuralFeatures().get(3);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getDistributionArchitecture_Features() {
		return (EReference)distributionArchitectureEClass.getEStructuralFeatures().get(4);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getDistributionArchitectureRole() {
		return distributionArchitectureRoleEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getDistributionArchitectureRole_Name() {
		return (EAttribute)distributionArchitectureRoleEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getDistributionArchitectureRole_MultipleCardinality() {
		return (EAttribute)distributionArchitectureRoleEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getDistributionArchitectureUnit() {
		return distributionArchitectureUnitEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getDistributionArchitectureUnit_Name() {
		return (EAttribute)distributionArchitectureUnitEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getDistributionArchitectureUnit_MultipleCardinality() {
		return (EAttribute)distributionArchitectureUnitEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getDistributionArchitectureUnit_AssociatedWithPort() {
		return (EAttribute)distributionArchitectureUnitEClass.getEStructuralFeatures().get(2);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getDistributionArchitectureUnit_AssociatedWithRole() {
		return (EAttribute)distributionArchitectureUnitEClass.getEStructuralFeatures().get(3);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getDistributionArchitectureUnit_AllowedEAs() {
		return (EAttribute)distributionArchitectureUnitEClass.getEStructuralFeatures().get(4);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getDistributionArchitectureRemoteBinding() {
		return distributionArchitectureRemoteBindingEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getDistributionArchitectureRemoteBinding_Cau1() {
		return (EAttribute)distributionArchitectureRemoteBindingEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getDistributionArchitectureRemoteBinding_Cau2() {
		return (EAttribute)distributionArchitectureRemoteBindingEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getDistributionArchitectureRemoteBinding_Eapr1() {
		return (EAttribute)distributionArchitectureRemoteBindingEClass.getEStructuralFeatures().get(2);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getDistributionArchitectureRemoteBinding_Eapr2() {
		return (EAttribute)distributionArchitectureRemoteBindingEClass.getEStructuralFeatures().get(3);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getDistributionArchitectureFeatureDelegation() {
		return distributionArchitectureFeatureDelegationEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getDistributionArchitectureFeatureDelegation_FeatureName() {
		return (EAttribute)distributionArchitectureFeatureDelegationEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getDistributionArchitectureFeatureDelegation_Unit() {
		return (EAttribute)distributionArchitectureFeatureDelegationEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getDistributionArchitectureFeatureDelegation_UnitFeatureName() {
		return (EAttribute)distributionArchitectureFeatureDelegationEClass.getEStructuralFeatures().get(2);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getElementArchitecture() {
		return elementArchitectureEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getElementArchitecture_Name() {
		return (EAttribute)elementArchitectureEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getElementArchitecture_AvailablePorts() {
		return (EAttribute)elementArchitectureEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getElementArchitecture_SubElements() {
		return (EReference)elementArchitectureEClass.getEStructuralFeatures().get(2);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getElementArchitecture_PortBindings() {
		return (EReference)elementArchitectureEClass.getEStructuralFeatures().get(3);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getElementArchitecture_AllowedDeployments() {
		return (EAttribute)elementArchitectureEClass.getEStructuralFeatures().get(4);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getElementArchitecture_SignaturePropagations() {
		return (EReference)elementArchitectureEClass.getEStructuralFeatures().get(5);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getElementArchitecture_Features() {
		return (EReference)elementArchitectureEClass.getEStructuralFeatures().get(6);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getElementArchitectureSubElement() {
		return elementArchitectureSubElementEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getElementArchitectureSubElement_Name() {
		return (EAttribute)elementArchitectureSubElementEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getElementArchitectureSubElement_AllowedEAs() {
		return (EAttribute)elementArchitectureSubElementEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getElementArchitecturePortBinding() {
		return elementArchitecturePortBindingEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getElementArchitecturePortBinding_Ffea1() {
		return (EAttribute)elementArchitecturePortBindingEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getElementArchitecturePortBinding_Ffea2() {
		return (EAttribute)elementArchitecturePortBindingEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getElementArchitecturePortBinding_Eap1() {
		return (EAttribute)elementArchitecturePortBindingEClass.getEStructuralFeatures().get(2);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getElementArchitecturePortBinding_Eap2() {
		return (EAttribute)elementArchitecturePortBindingEClass.getEStructuralFeatures().get(3);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getElementArchitectureSignaturePropagation() {
		return elementArchitectureSignaturePropagationEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getElementArchitectureSignaturePropagation_PortName() {
		return (EAttribute)elementArchitectureSignaturePropagationEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getElementArchitectureSignaturePropagation_DestPortName() {
		return (EAttribute)elementArchitectureSignaturePropagationEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getElementArchitectureSignaturePropagation_DestSignature() {
		return (EAttribute)elementArchitectureSignaturePropagationEClass.getEStructuralFeatures().get(2);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getElementArchitectureSignaturePropagation_DestSignatureAttributes() {
		return (EReference)elementArchitectureSignaturePropagationEClass.getEStructuralFeatures().get(3);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getElementArchitectureFeature() {
		return elementArchitectureFeatureEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getElementArchitectureFeature_Name() {
		return (EAttribute)elementArchitectureFeatureEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getElementArchitectureFeature_Value() {
		return (EAttribute)elementArchitectureFeatureEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getElementArchitectureFeature_Attributes() {
		return (EReference)elementArchitectureFeatureEClass.getEStructuralFeatures().get(2);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getElementArchitectureFeature_DelegatedToSubElement() {
		return (EAttribute)elementArchitectureFeatureEClass.getEStructuralFeatures().get(3);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getElementArchitectureFeature_DelegatedToFeatureName() {
		return (EAttribute)elementArchitectureFeatureEClass.getEStructuralFeatures().get(4);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getElementArchitectureFeatureAttribute() {
		return elementArchitectureFeatureAttributeEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getElementArchitectureFeatureAttribute_Name() {
		return (EAttribute)elementArchitectureFeatureAttributeEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getElementArchitectureFeatureAttribute_Value() {
		return (EAttribute)elementArchitectureFeatureAttributeEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getNameValuesPair() {
		return nameValuesPairEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getNameValuesPair_Name() {
		return (EAttribute)nameValuesPairEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getNameValuesPair_Values() {
		return (EAttribute)nameValuesPairEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getNameValuesPair_Ports() {
		return (EAttribute)nameValuesPairEClass.getEStructuralFeatures().get(2);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getPort() {
		return portEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getPort_Name() {
		return (EAttribute)portEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getPort_Type() {
		return (EAttribute)portEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getRole() {
		return roleEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getRole_Name() {
		return (EAttribute)roleEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getSignature() {
		return signatureEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getSignature_Name() {
		return (EAttribute)signatureEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getSignature_Parameters() {
		return (EAttribute)signatureEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getSubelement() {
		return subelementEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getSubelement_Name() {
		return (EAttribute)subelementEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getUnit() {
		return unitEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getUnit_Name() {
		return (EAttribute)unitEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public IntermediateFactory getIntermediateFactory() {
		return (IntermediateFactory)getEFactoryInstance();
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private boolean isCreated = false;

	/**
	 * Creates the meta-model objects for the package.  This method is
	 * guarded to have no affect on any invocation but its first.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void createPackageContents() {
		if (isCreated) return;
		isCreated = true;

		// Create classes and their features
		intermediateDocumentEClass = createEClass(INTERMEDIATE_DOCUMENT);
		createEReference(intermediateDocumentEClass, INTERMEDIATE_DOCUMENT__CONNECTORS);
		createEReference(intermediateDocumentEClass, INTERMEDIATE_DOCUMENT__DOCKS);
		createEReference(intermediateDocumentEClass, INTERMEDIATE_DOCUMENT__DISTRIBUTION_ARCHITECTURES);
		createEReference(intermediateDocumentEClass, INTERMEDIATE_DOCUMENT__ELEMENT_ARCHITECTURES);
		createEReference(intermediateDocumentEClass, INTERMEDIATE_DOCUMENT__PORTS);
		createEReference(intermediateDocumentEClass, INTERMEDIATE_DOCUMENT__ROLES);
		createEReference(intermediateDocumentEClass, INTERMEDIATE_DOCUMENT__SUBELEMENTS);
		createEReference(intermediateDocumentEClass, INTERMEDIATE_DOCUMENT__SIGNATURES);
		createEReference(intermediateDocumentEClass, INTERMEDIATE_DOCUMENT__UNITS);

		connectorEClass = createEClass(CONNECTOR);
		createEAttribute(connectorEClass, CONNECTOR__NAME);
		createEReference(connectorEClass, CONNECTOR__ENDPOINTS);
		createEAttribute(connectorEClass, CONNECTOR__ALLOWED_DAS);
		createEReference(connectorEClass, CONNECTOR__FEATURES);

		connectorEndpointEClass = createEClass(CONNECTOR_ENDPOINT);
		createEAttribute(connectorEndpointEClass, CONNECTOR_ENDPOINT__NAME);
		createEAttribute(connectorEndpointEClass, CONNECTOR_ENDPOINT__ROLE);
		createEAttribute(connectorEndpointEClass, CONNECTOR_ENDPOINT__SIGNATURE);
		createEAttribute(connectorEndpointEClass, CONNECTOR_ENDPOINT__DOCK);

		connectorFeatureEClass = createEClass(CONNECTOR_FEATURE);
		createEAttribute(connectorFeatureEClass, CONNECTOR_FEATURE__NAME);
		createEAttribute(connectorFeatureEClass, CONNECTOR_FEATURE__COMPONENT);
		createEAttribute(connectorFeatureEClass, CONNECTOR_FEATURE__INTERFACE);
		createEReference(connectorFeatureEClass, CONNECTOR_FEATURE__VALUES);

		connectorFeatureValueEClass = createEClass(CONNECTOR_FEATURE_VALUE);
		createEAttribute(connectorFeatureValueEClass, CONNECTOR_FEATURE_VALUE__NAME);
		createEReference(connectorFeatureValueEClass, CONNECTOR_FEATURE_VALUE__ATTRIBUTES);

		connectorFeatureValueAttributeEClass = createEClass(CONNECTOR_FEATURE_VALUE_ATTRIBUTE);
		createEAttribute(connectorFeatureValueAttributeEClass, CONNECTOR_FEATURE_VALUE_ATTRIBUTE__NAME);
		createEAttribute(connectorFeatureValueAttributeEClass, CONNECTOR_FEATURE_VALUE_ATTRIBUTE__VALUE);

		deploymentDockEClass = createEClass(DEPLOYMENT_DOCK);
		createEAttribute(deploymentDockEClass, DEPLOYMENT_DOCK__NAME);

		distributionArchitectureEClass = createEClass(DISTRIBUTION_ARCHITECTURE);
		createEAttribute(distributionArchitectureEClass, DISTRIBUTION_ARCHITECTURE__NAME);
		createEReference(distributionArchitectureEClass, DISTRIBUTION_ARCHITECTURE__ROLES);
		createEReference(distributionArchitectureEClass, DISTRIBUTION_ARCHITECTURE__UNITS);
		createEReference(distributionArchitectureEClass, DISTRIBUTION_ARCHITECTURE__REMOTE_BINDINGS);
		createEReference(distributionArchitectureEClass, DISTRIBUTION_ARCHITECTURE__FEATURES);

		distributionArchitectureRoleEClass = createEClass(DISTRIBUTION_ARCHITECTURE_ROLE);
		createEAttribute(distributionArchitectureRoleEClass, DISTRIBUTION_ARCHITECTURE_ROLE__NAME);
		createEAttribute(distributionArchitectureRoleEClass, DISTRIBUTION_ARCHITECTURE_ROLE__MULTIPLE_CARDINALITY);

		distributionArchitectureUnitEClass = createEClass(DISTRIBUTION_ARCHITECTURE_UNIT);
		createEAttribute(distributionArchitectureUnitEClass, DISTRIBUTION_ARCHITECTURE_UNIT__NAME);
		createEAttribute(distributionArchitectureUnitEClass, DISTRIBUTION_ARCHITECTURE_UNIT__MULTIPLE_CARDINALITY);
		createEAttribute(distributionArchitectureUnitEClass, DISTRIBUTION_ARCHITECTURE_UNIT__ASSOCIATED_WITH_PORT);
		createEAttribute(distributionArchitectureUnitEClass, DISTRIBUTION_ARCHITECTURE_UNIT__ASSOCIATED_WITH_ROLE);
		createEAttribute(distributionArchitectureUnitEClass, DISTRIBUTION_ARCHITECTURE_UNIT__ALLOWED_EAS);

		distributionArchitectureRemoteBindingEClass = createEClass(DISTRIBUTION_ARCHITECTURE_REMOTE_BINDING);
		createEAttribute(distributionArchitectureRemoteBindingEClass, DISTRIBUTION_ARCHITECTURE_REMOTE_BINDING__CAU1);
		createEAttribute(distributionArchitectureRemoteBindingEClass, DISTRIBUTION_ARCHITECTURE_REMOTE_BINDING__CAU2);
		createEAttribute(distributionArchitectureRemoteBindingEClass, DISTRIBUTION_ARCHITECTURE_REMOTE_BINDING__EAPR1);
		createEAttribute(distributionArchitectureRemoteBindingEClass, DISTRIBUTION_ARCHITECTURE_REMOTE_BINDING__EAPR2);

		distributionArchitectureFeatureDelegationEClass = createEClass(DISTRIBUTION_ARCHITECTURE_FEATURE_DELEGATION);
		createEAttribute(distributionArchitectureFeatureDelegationEClass, DISTRIBUTION_ARCHITECTURE_FEATURE_DELEGATION__FEATURE_NAME);
		createEAttribute(distributionArchitectureFeatureDelegationEClass, DISTRIBUTION_ARCHITECTURE_FEATURE_DELEGATION__UNIT);
		createEAttribute(distributionArchitectureFeatureDelegationEClass, DISTRIBUTION_ARCHITECTURE_FEATURE_DELEGATION__UNIT_FEATURE_NAME);

		elementArchitectureEClass = createEClass(ELEMENT_ARCHITECTURE);
		createEAttribute(elementArchitectureEClass, ELEMENT_ARCHITECTURE__NAME);
		createEAttribute(elementArchitectureEClass, ELEMENT_ARCHITECTURE__AVAILABLE_PORTS);
		createEReference(elementArchitectureEClass, ELEMENT_ARCHITECTURE__SUB_ELEMENTS);
		createEReference(elementArchitectureEClass, ELEMENT_ARCHITECTURE__PORT_BINDINGS);
		createEAttribute(elementArchitectureEClass, ELEMENT_ARCHITECTURE__ALLOWED_DEPLOYMENTS);
		createEReference(elementArchitectureEClass, ELEMENT_ARCHITECTURE__SIGNATURE_PROPAGATIONS);
		createEReference(elementArchitectureEClass, ELEMENT_ARCHITECTURE__FEATURES);

		elementArchitectureSubElementEClass = createEClass(ELEMENT_ARCHITECTURE_SUB_ELEMENT);
		createEAttribute(elementArchitectureSubElementEClass, ELEMENT_ARCHITECTURE_SUB_ELEMENT__NAME);
		createEAttribute(elementArchitectureSubElementEClass, ELEMENT_ARCHITECTURE_SUB_ELEMENT__ALLOWED_EAS);

		elementArchitecturePortBindingEClass = createEClass(ELEMENT_ARCHITECTURE_PORT_BINDING);
		createEAttribute(elementArchitecturePortBindingEClass, ELEMENT_ARCHITECTURE_PORT_BINDING__FFEA1);
		createEAttribute(elementArchitecturePortBindingEClass, ELEMENT_ARCHITECTURE_PORT_BINDING__FFEA2);
		createEAttribute(elementArchitecturePortBindingEClass, ELEMENT_ARCHITECTURE_PORT_BINDING__EAP1);
		createEAttribute(elementArchitecturePortBindingEClass, ELEMENT_ARCHITECTURE_PORT_BINDING__EAP2);

		elementArchitectureSignaturePropagationEClass = createEClass(ELEMENT_ARCHITECTURE_SIGNATURE_PROPAGATION);
		createEAttribute(elementArchitectureSignaturePropagationEClass, ELEMENT_ARCHITECTURE_SIGNATURE_PROPAGATION__PORT_NAME);
		createEAttribute(elementArchitectureSignaturePropagationEClass, ELEMENT_ARCHITECTURE_SIGNATURE_PROPAGATION__DEST_PORT_NAME);
		createEAttribute(elementArchitectureSignaturePropagationEClass, ELEMENT_ARCHITECTURE_SIGNATURE_PROPAGATION__DEST_SIGNATURE);
		createEReference(elementArchitectureSignaturePropagationEClass, ELEMENT_ARCHITECTURE_SIGNATURE_PROPAGATION__DEST_SIGNATURE_ATTRIBUTES);

		elementArchitectureFeatureEClass = createEClass(ELEMENT_ARCHITECTURE_FEATURE);
		createEAttribute(elementArchitectureFeatureEClass, ELEMENT_ARCHITECTURE_FEATURE__NAME);
		createEAttribute(elementArchitectureFeatureEClass, ELEMENT_ARCHITECTURE_FEATURE__VALUE);
		createEReference(elementArchitectureFeatureEClass, ELEMENT_ARCHITECTURE_FEATURE__ATTRIBUTES);
		createEAttribute(elementArchitectureFeatureEClass, ELEMENT_ARCHITECTURE_FEATURE__DELEGATED_TO_SUB_ELEMENT);
		createEAttribute(elementArchitectureFeatureEClass, ELEMENT_ARCHITECTURE_FEATURE__DELEGATED_TO_FEATURE_NAME);

		elementArchitectureFeatureAttributeEClass = createEClass(ELEMENT_ARCHITECTURE_FEATURE_ATTRIBUTE);
		createEAttribute(elementArchitectureFeatureAttributeEClass, ELEMENT_ARCHITECTURE_FEATURE_ATTRIBUTE__NAME);
		createEAttribute(elementArchitectureFeatureAttributeEClass, ELEMENT_ARCHITECTURE_FEATURE_ATTRIBUTE__VALUE);

		nameValuesPairEClass = createEClass(NAME_VALUES_PAIR);
		createEAttribute(nameValuesPairEClass, NAME_VALUES_PAIR__NAME);
		createEAttribute(nameValuesPairEClass, NAME_VALUES_PAIR__VALUES);
		createEAttribute(nameValuesPairEClass, NAME_VALUES_PAIR__PORTS);

		portEClass = createEClass(PORT);
		createEAttribute(portEClass, PORT__NAME);
		createEAttribute(portEClass, PORT__TYPE);

		roleEClass = createEClass(ROLE);
		createEAttribute(roleEClass, ROLE__NAME);

		signatureEClass = createEClass(SIGNATURE);
		createEAttribute(signatureEClass, SIGNATURE__NAME);
		createEAttribute(signatureEClass, SIGNATURE__PARAMETERS);

		subelementEClass = createEClass(SUBELEMENT);
		createEAttribute(subelementEClass, SUBELEMENT__NAME);

		unitEClass = createEClass(UNIT);
		createEAttribute(unitEClass, UNIT__NAME);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private boolean isInitialized = false;

	/**
	 * Complete the initialization of the package and its meta-model.  This
	 * method is guarded to have no affect on any invocation but its first.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void initializePackageContents() {
		if (isInitialized) return;
		isInitialized = true;

		// Initialize package
		setName(eNAME);
		setNsPrefix(eNS_PREFIX);
		setNsURI(eNS_URI);

		// Create type parameters

		// Set bounds for type parameters

		// Add supertypes to classes

		// Initialize classes and features; add operations and parameters
		initEClass(intermediateDocumentEClass, IntermediateDocument.class, "IntermediateDocument", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEReference(getIntermediateDocument_Connectors(), this.getConnector(), null, "connectors", null, 0, -1, IntermediateDocument.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEReference(getIntermediateDocument_Docks(), this.getDeploymentDock(), null, "docks", null, 0, -1, IntermediateDocument.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEReference(getIntermediateDocument_DistributionArchitectures(), this.getDistributionArchitecture(), null, "distributionArchitectures", null, 0, -1, IntermediateDocument.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEReference(getIntermediateDocument_ElementArchitectures(), this.getElementArchitecture(), null, "elementArchitectures", null, 0, -1, IntermediateDocument.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEReference(getIntermediateDocument_Ports(), this.getPort(), null, "ports", null, 0, -1, IntermediateDocument.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEReference(getIntermediateDocument_Roles(), this.getRole(), null, "roles", null, 0, -1, IntermediateDocument.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEReference(getIntermediateDocument_Subelements(), this.getSubelement(), null, "subelements", null, 0, -1, IntermediateDocument.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEReference(getIntermediateDocument_Signatures(), this.getSignature(), null, "signatures", null, 0, -1, IntermediateDocument.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEReference(getIntermediateDocument_Units(), this.getUnit(), null, "units", null, 0, -1, IntermediateDocument.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(connectorEClass, Connector.class, "Connector", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEAttribute(getConnector_Name(), ecorePackage.getEString(), "name", null, 0, 1, Connector.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEReference(getConnector_Endpoints(), this.getConnectorEndpoint(), null, "endpoints", null, 0, -1, Connector.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getConnector_AllowedDAs(), ecorePackage.getEString(), "allowedDAs", null, 0, -1, Connector.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEReference(getConnector_Features(), this.getConnectorFeature(), null, "features", null, 0, -1, Connector.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(connectorEndpointEClass, ConnectorEndpoint.class, "ConnectorEndpoint", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEAttribute(getConnectorEndpoint_Name(), ecorePackage.getEString(), "name", null, 0, 1, ConnectorEndpoint.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getConnectorEndpoint_Role(), ecorePackage.getEString(), "role", null, 0, 1, ConnectorEndpoint.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getConnectorEndpoint_Signature(), ecorePackage.getEString(), "signature", null, 0, 1, ConnectorEndpoint.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getConnectorEndpoint_Dock(), ecorePackage.getEString(), "dock", null, 0, 1, ConnectorEndpoint.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(connectorFeatureEClass, ConnectorFeature.class, "ConnectorFeature", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEAttribute(getConnectorFeature_Name(), ecorePackage.getEString(), "name", null, 0, 1, ConnectorFeature.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getConnectorFeature_Component(), ecorePackage.getEString(), "component", null, 0, 1, ConnectorFeature.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getConnectorFeature_Interface(), ecorePackage.getEString(), "interface", null, 0, 1, ConnectorFeature.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEReference(getConnectorFeature_Values(), this.getConnectorFeatureValue(), null, "values", null, 0, -1, ConnectorFeature.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(connectorFeatureValueEClass, ConnectorFeatureValue.class, "ConnectorFeatureValue", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEAttribute(getConnectorFeatureValue_Name(), ecorePackage.getEString(), "name", null, 0, 1, ConnectorFeatureValue.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEReference(getConnectorFeatureValue_Attributes(), this.getConnectorFeatureValueAttribute(), null, "attributes", null, 0, -1, ConnectorFeatureValue.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(connectorFeatureValueAttributeEClass, ConnectorFeatureValueAttribute.class, "ConnectorFeatureValueAttribute", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEAttribute(getConnectorFeatureValueAttribute_Name(), ecorePackage.getEString(), "name", null, 0, 1, ConnectorFeatureValueAttribute.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getConnectorFeatureValueAttribute_Value(), ecorePackage.getEString(), "value", null, 0, 1, ConnectorFeatureValueAttribute.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(deploymentDockEClass, DeploymentDock.class, "DeploymentDock", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEAttribute(getDeploymentDock_Name(), ecorePackage.getEString(), "name", null, 0, 1, DeploymentDock.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(distributionArchitectureEClass, DistributionArchitecture.class, "DistributionArchitecture", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEAttribute(getDistributionArchitecture_Name(), ecorePackage.getEString(), "name", null, 0, 1, DistributionArchitecture.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEReference(getDistributionArchitecture_Roles(), this.getDistributionArchitectureRole(), null, "roles", null, 0, -1, DistributionArchitecture.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEReference(getDistributionArchitecture_Units(), this.getDistributionArchitectureUnit(), null, "units", null, 0, -1, DistributionArchitecture.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEReference(getDistributionArchitecture_RemoteBindings(), this.getDistributionArchitectureRemoteBinding(), null, "remoteBindings", null, 0, -1, DistributionArchitecture.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEReference(getDistributionArchitecture_Features(), this.getDistributionArchitectureFeatureDelegation(), null, "features", null, 0, -1, DistributionArchitecture.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(distributionArchitectureRoleEClass, DistributionArchitectureRole.class, "DistributionArchitectureRole", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEAttribute(getDistributionArchitectureRole_Name(), ecorePackage.getEString(), "name", null, 0, 1, DistributionArchitectureRole.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getDistributionArchitectureRole_MultipleCardinality(), ecorePackage.getEBoolean(), "multipleCardinality", null, 0, 1, DistributionArchitectureRole.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(distributionArchitectureUnitEClass, DistributionArchitectureUnit.class, "DistributionArchitectureUnit", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEAttribute(getDistributionArchitectureUnit_Name(), ecorePackage.getEString(), "name", null, 0, 1, DistributionArchitectureUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getDistributionArchitectureUnit_MultipleCardinality(), ecorePackage.getEBoolean(), "multipleCardinality", null, 0, 1, DistributionArchitectureUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getDistributionArchitectureUnit_AssociatedWithPort(), ecorePackage.getEString(), "associatedWithPort", null, 0, 1, DistributionArchitectureUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getDistributionArchitectureUnit_AssociatedWithRole(), ecorePackage.getEString(), "associatedWithRole", null, 0, 1, DistributionArchitectureUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getDistributionArchitectureUnit_AllowedEAs(), ecorePackage.getEString(), "allowedEAs", null, 0, -1, DistributionArchitectureUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(distributionArchitectureRemoteBindingEClass, DistributionArchitectureRemoteBinding.class, "DistributionArchitectureRemoteBinding", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEAttribute(getDistributionArchitectureRemoteBinding_Cau1(), ecorePackage.getEString(), "cau1", null, 0, 1, DistributionArchitectureRemoteBinding.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getDistributionArchitectureRemoteBinding_Cau2(), ecorePackage.getEString(), "cau2", null, 0, 1, DistributionArchitectureRemoteBinding.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getDistributionArchitectureRemoteBinding_Eapr1(), ecorePackage.getEString(), "eapr1", null, 0, 1, DistributionArchitectureRemoteBinding.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getDistributionArchitectureRemoteBinding_Eapr2(), ecorePackage.getEString(), "eapr2", null, 0, 1, DistributionArchitectureRemoteBinding.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(distributionArchitectureFeatureDelegationEClass, DistributionArchitectureFeatureDelegation.class, "DistributionArchitectureFeatureDelegation", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEAttribute(getDistributionArchitectureFeatureDelegation_FeatureName(), ecorePackage.getEString(), "featureName", null, 0, 1, DistributionArchitectureFeatureDelegation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getDistributionArchitectureFeatureDelegation_Unit(), ecorePackage.getEString(), "unit", null, 0, 1, DistributionArchitectureFeatureDelegation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getDistributionArchitectureFeatureDelegation_UnitFeatureName(), ecorePackage.getEString(), "unitFeatureName", null, 0, 1, DistributionArchitectureFeatureDelegation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(elementArchitectureEClass, ElementArchitecture.class, "ElementArchitecture", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEAttribute(getElementArchitecture_Name(), ecorePackage.getEString(), "name", null, 0, 1, ElementArchitecture.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getElementArchitecture_AvailablePorts(), ecorePackage.getEString(), "availablePorts", null, 0, -1, ElementArchitecture.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEReference(getElementArchitecture_SubElements(), this.getElementArchitectureSubElement(), null, "subElements", null, 0, -1, ElementArchitecture.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEReference(getElementArchitecture_PortBindings(), this.getElementArchitecturePortBinding(), null, "portBindings", null, 0, -1, ElementArchitecture.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getElementArchitecture_AllowedDeployments(), ecorePackage.getEString(), "allowedDeployments", null, 0, -1, ElementArchitecture.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEReference(getElementArchitecture_SignaturePropagations(), this.getElementArchitectureSignaturePropagation(), null, "signaturePropagations", null, 0, -1, ElementArchitecture.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEReference(getElementArchitecture_Features(), this.getElementArchitectureFeature(), null, "features", null, 0, -1, ElementArchitecture.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(elementArchitectureSubElementEClass, ElementArchitectureSubElement.class, "ElementArchitectureSubElement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEAttribute(getElementArchitectureSubElement_Name(), ecorePackage.getEString(), "name", null, 0, 1, ElementArchitectureSubElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getElementArchitectureSubElement_AllowedEAs(), ecorePackage.getEString(), "allowedEAs", null, 0, -1, ElementArchitectureSubElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(elementArchitecturePortBindingEClass, ElementArchitecturePortBinding.class, "ElementArchitecturePortBinding", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEAttribute(getElementArchitecturePortBinding_Ffea1(), ecorePackage.getEString(), "ffea1", null, 0, 1, ElementArchitecturePortBinding.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getElementArchitecturePortBinding_Ffea2(), ecorePackage.getEString(), "ffea2", null, 0, 1, ElementArchitecturePortBinding.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getElementArchitecturePortBinding_Eap1(), ecorePackage.getEString(), "eap1", null, 0, 1, ElementArchitecturePortBinding.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getElementArchitecturePortBinding_Eap2(), ecorePackage.getEString(), "eap2", null, 0, 1, ElementArchitecturePortBinding.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(elementArchitectureSignaturePropagationEClass, ElementArchitectureSignaturePropagation.class, "ElementArchitectureSignaturePropagation", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEAttribute(getElementArchitectureSignaturePropagation_PortName(), ecorePackage.getEString(), "portName", null, 0, 1, ElementArchitectureSignaturePropagation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getElementArchitectureSignaturePropagation_DestPortName(), ecorePackage.getEString(), "destPortName", null, 0, 1, ElementArchitectureSignaturePropagation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getElementArchitectureSignaturePropagation_DestSignature(), ecorePackage.getEString(), "destSignature", null, 0, 1, ElementArchitectureSignaturePropagation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEReference(getElementArchitectureSignaturePropagation_DestSignatureAttributes(), this.getNameValuesPair(), null, "destSignatureAttributes", null, 0, -1, ElementArchitectureSignaturePropagation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(elementArchitectureFeatureEClass, ElementArchitectureFeature.class, "ElementArchitectureFeature", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEAttribute(getElementArchitectureFeature_Name(), ecorePackage.getEString(), "name", null, 0, 1, ElementArchitectureFeature.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getElementArchitectureFeature_Value(), ecorePackage.getEString(), "value", null, 0, 1, ElementArchitectureFeature.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEReference(getElementArchitectureFeature_Attributes(), this.getElementArchitectureFeatureAttribute(), null, "attributes", null, 0, -1, ElementArchitectureFeature.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getElementArchitectureFeature_DelegatedToSubElement(), ecorePackage.getEString(), "delegatedToSubElement", null, 0, 1, ElementArchitectureFeature.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getElementArchitectureFeature_DelegatedToFeatureName(), ecorePackage.getEString(), "delegatedToFeatureName", null, 0, 1, ElementArchitectureFeature.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(elementArchitectureFeatureAttributeEClass, ElementArchitectureFeatureAttribute.class, "ElementArchitectureFeatureAttribute", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEAttribute(getElementArchitectureFeatureAttribute_Name(), ecorePackage.getEString(), "name", null, 0, 1, ElementArchitectureFeatureAttribute.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getElementArchitectureFeatureAttribute_Value(), ecorePackage.getEString(), "value", null, 0, 1, ElementArchitectureFeatureAttribute.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(nameValuesPairEClass, NameValuesPair.class, "NameValuesPair", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEAttribute(getNameValuesPair_Name(), ecorePackage.getEString(), "name", null, 0, 1, NameValuesPair.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getNameValuesPair_Values(), ecorePackage.getEString(), "values", null, 0, -1, NameValuesPair.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getNameValuesPair_Ports(), ecorePackage.getEString(), "ports", null, 0, -1, NameValuesPair.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(portEClass, Port.class, "Port", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEAttribute(getPort_Name(), ecorePackage.getEString(), "name", null, 0, 1, Port.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getPort_Type(), ecorePackage.getEString(), "type", null, 0, 1, Port.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(roleEClass, Role.class, "Role", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEAttribute(getRole_Name(), ecorePackage.getEString(), "name", null, 0, 1, Role.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(signatureEClass, Signature.class, "Signature", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEAttribute(getSignature_Name(), ecorePackage.getEString(), "name", null, 0, 1, Signature.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getSignature_Parameters(), ecorePackage.getEString(), "parameters", null, 0, -1, Signature.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(subelementEClass, Subelement.class, "Subelement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEAttribute(getSubelement_Name(), ecorePackage.getEString(), "name", null, 0, 1, Subelement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(unitEClass, Unit.class, "Unit", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEAttribute(getUnit_Name(), ecorePackage.getEString(), "name", null, 0, 1, Unit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		// Create resource
		createResource(eNS_URI);
	}

} //IntermediatePackageImpl
